﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using UMLObjects;

namespace Commands
{
    public interface IUMLCanvas: IInputElement
    {
        ActivityDiagram MainDiagram { get; }

        /// <summary>
        /// Add generic element to the surface
        /// </summary>
        /// <typeparam name="T">UIElement type</typeparam>
        /// <param name="element">Element to be added to the surface</param>
        void AddElement<T>(T element);

        /// <summary>
        /// Remove generic element from the surface
        /// </summary>
        /// <typeparam name="T">UIElement type</typeparam>
        /// <param name="element">Element to be removed from the surface</param>
        void RemoveElement<T>(T element);

        /// <summary>
        /// place a generic element on the surface
        /// </summary>
        /// <typeparam name="T">UIElement type</typeparam>
        /// <param name="element">Element to placed</param>
        /// <param name="point">Position of element</param>
        void DropElement<T>(T element, Point position);
    }
}
